#!/bin/bash

# 登录认证API部署脚本
# 用于在阿里云服务器上部署登录API

# 确保脚本在出错时退出
set -e

# 配置信息
APP_NAME="login-api"
APP_DIR="/home/admin/$APP_NAME"
NODE_ENV="production"
PORT=3310

echo "开始部署 $APP_NAME 到阿里云服务器..."

# 创建项目目录
if [ ! -d "$APP_DIR" ]; then
  echo "创建项目目录: $APP_DIR"
  mkdir -p $APP_DIR
fi

# 复制项目文件
echo "复制项目文件到: $APP_DIR"
cp -r ./* $APP_DIR/

# 进入项目目录
cd $APP_DIR

# 安装依赖
echo "安装项目依赖..."
npm install --production

# 确保.env文件正确配置
if [ ! -f ".env" ]; then
  echo "创建.env文件..."
  cp .env.example .env
  echo "请确保.env文件已正确配置!"
fi

# 检查PM2是否已安装
if ! command -v pm2 &> /dev/null; then
  echo "安装PM2..."
  npm install -g pm2
fi

# 使用PM2启动应用
echo "使用PM2启动应用..."
pm2 stop $APP_NAME 2>/dev/null || true
pm2 delete $APP_NAME 2>/dev/null || true
PORT=$PORT NODE_ENV=$NODE_ENV pm2 start src/index.js --name $APP_NAME

# 配置PM2开机自启
echo "配置PM2开机自启..."
pm2 save
pm2 startup

# 检查应用是否启动成功
echo "正在检查应用是否启动成功..."
sleep 5
if curl -s http://localhost:$PORT >/dev/null; then
  echo "应用已成功启动，访问地址: http://39.106.45.98:$PORT"
else
  echo "应用启动可能存在问题，请检查日志"
  pm2 logs $APP_NAME --lines 50
fi

echo "$APP_NAME 部署完成!"
echo "提示: 请确保防火墙已开放 $PORT 端口" 